/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.solitaire.wechat.model;

import com.medusa.gruul.solitaire.wechat.request.BaseRequest;
import com.medusa.gruul.solitaire.wechat.utils.StringUtils;
import lombok.Data;

import java.io.Serializable;

/**
 * 登录会话
 *
 * @author biezhi
 * @date 2018/1/18
 */
@Data
public class LoginSession implements Serializable {

    private Account account;

    private String userName;
    private String nickName;

    private String url;
    private String fileUrl;
    private String syncUrl;
    private String deviceId;
    private String sKey;
    private String wxSid;
    private String wxUin;
    private String passTicket;
    private String syncKeyStr;
    private Integer inviteStartCount;
    private BaseRequest baseRequest;
    private SyncKey syncKey;

    public String getSyncOrUrl() {
        if (StringUtils.isNotEmpty(this.syncUrl)) {
            return this.syncUrl;
        }
        return this.url;
    }

    public String getFileUrl() {
        if (StringUtils.isNotEmpty(this.fileUrl)) {
            return this.fileUrl;
        }
        return this.url;
    }

    public void setSyncKey(SyncKey syncKey) {
        this.syncKey = syncKey;

        StringBuilder syncKeyBuf = new StringBuilder();
        for (KeyItem item : syncKey.getList()) {
            syncKeyBuf.append("|").append(item.getKey()).append("_").append(item.getVal());
        }
        if (syncKeyBuf.length() > 0) {
            this.syncKeyStr = syncKeyBuf.substring(1);
        }
    }

}
